Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Throw a more informative error on invalid keystore #4022

Merged
merged 5 commits into from
May 19, 2022

Conversation

wemeetagain
Copy link
Member

Motivation

Seen in the private lodestar chat:

Has anyone ever seen this validator error before?

May-16 14:13:11.239[]                 info: Lodestar version=v0.34.0-beta.0/HEAD/+183/28e2c74c (git), network=prater
 ✖ SyntaxError: Unexpected token p in JSON at position 0
    at JSON.parse (<anonymous>)
    at Function.parse (/usr/app/node_modules/@chainsafe/bls-keystore/lib/class.js:53:41)
    at /usr/app/node_modules/@chainsafe/lodestar-cli/src/cmds/validator/keys.ts:63:44
    at Array.map (<anonymous>)
    at getLocalSecretKeys (/usr/app/node_modules/@chainsafe/lodestar-cli/src/cmds/validator/keys.ts:62:21)
    at Object.validatorHandler [as handler] (/usr/app/node_modules/@chainsafe/lodestar-cli/src/cmds/validator/handler.ts:68:68)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

This error isn't very informative, but its due to an invalid keystore being loaded.

Description

This PR catches errors parsing a keystore, and throws an error with the keystore path

@wemeetagain wemeetagain requested a review from a team as a code owner May 16, 2022 15:07
@codecov
Copy link

codecov bot commented May 16, 2022

Codecov Report

Merging #4022 (3af0e72) into master (4827b29) will decrease coverage by 0.11%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #4022      +/-   ##
==========================================
- Coverage   36.80%   36.69%   -0.12%     
==========================================
  Files         325      325              
  Lines        9199     9260      +61     
  Branches     1496     1515      +19     
==========================================
+ Hits         3386     3398      +12     
- Misses       5622     5671      +49     
  Partials      191      191              

@github-actions
Copy link
Contributor

github-actions bot commented May 16, 2022

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 8c2600c Previous: 01e6ffe Ratio
BeaconState.hashTreeRoot - No change 631.00 ns/op 412.00 ns/op 1.53
BeaconState.hashTreeRoot - 1 full validator 65.288 us/op 55.164 us/op 1.18
BeaconState.hashTreeRoot - 32 full validator 685.63 us/op 565.98 us/op 1.21
BeaconState.hashTreeRoot - 512 full validator 7.5198 ms/op 5.9796 ms/op 1.26
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 86.990 us/op 70.279 us/op 1.24
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.1304 ms/op 946.26 us/op 1.19
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 16.061 ms/op 12.948 ms/op 1.24
BeaconState.hashTreeRoot - 1 balances 64.498 us/op 53.791 us/op 1.20
BeaconState.hashTreeRoot - 32 balances 569.62 us/op 476.95 us/op 1.19
BeaconState.hashTreeRoot - 512 balances 5.5070 ms/op 4.6581 ms/op 1.18
BeaconState.hashTreeRoot - 250000 balances 129.66 ms/op 95.311 ms/op 1.36
processSlot - 1 slots 13.727 us/op 10.791 us/op 1.27
processSlot - 32 slots 1.9747 ms/op 1.6413 ms/op 1.20
getCommitteeAssignments - req 1 vs - 250000 vc 6.6984 ms/op 5.2297 ms/op 1.28
getCommitteeAssignments - req 100 vs - 250000 vc 9.3309 ms/op 7.2814 ms/op 1.28
getCommitteeAssignments - req 1000 vs - 250000 vc 10.303 ms/op 7.7321 ms/op 1.33
computeProposers - vc 250000 22.260 ms/op 16.690 ms/op 1.33
computeEpochShuffling - vc 250000 192.66 ms/op 161.56 ms/op 1.19
getNextSyncCommittee - vc 250000 346.39 ms/op 276.39 ms/op 1.25
altair processAttestation - 250000 vs - 7PWei normalcase 5.0591 ms/op 3.7571 ms/op 1.35
altair processAttestation - 250000 vs - 7PWei worstcase 6.8518 ms/op 5.3922 ms/op 1.27
altair processAttestation - setStatus - 1/6 committees join 226.91 us/op 196.26 us/op 1.16
altair processAttestation - setStatus - 1/3 committees join 448.00 us/op 374.40 us/op 1.20
altair processAttestation - setStatus - 1/2 committees join 620.03 us/op 530.02 us/op 1.17
altair processAttestation - setStatus - 2/3 committees join 828.35 us/op 682.17 us/op 1.21
altair processAttestation - setStatus - 4/5 committees join 1.1162 ms/op 942.92 us/op 1.18
altair processAttestation - setStatus - 100% committees join 1.3034 ms/op 1.1186 ms/op 1.17
altair processBlock - 250000 vs - 7PWei normalcase 35.075 ms/op 26.819 ms/op 1.31
altair processBlock - 250000 vs - 7PWei normalcase hashState 43.375 ms/op 36.264 ms/op 1.20
altair processBlock - 250000 vs - 7PWei worstcase 91.230 ms/op 72.737 ms/op 1.25
altair processBlock - 250000 vs - 7PWei worstcase hashState 131.91 ms/op 109.71 ms/op 1.20
altair processEth1Data - 250000 vs - 7PWei normalcase 1.0482 ms/op 811.70 us/op 1.29
altair processEpoch - mainnet_e81889 658.76 ms/op 560.05 ms/op 1.18
mainnet_e81889 - altair beforeProcessEpoch 126.07 ms/op 140.34 ms/op 0.90
mainnet_e81889 - altair processJustificationAndFinalization 37.808 us/op 28.377 us/op 1.33
mainnet_e81889 - altair processInactivityUpdates 12.634 ms/op 11.493 ms/op 1.10
mainnet_e81889 - altair processRewardsAndPenalties 167.60 ms/op 134.55 ms/op 1.25
mainnet_e81889 - altair processRegistryUpdates 8.4820 us/op 3.5660 us/op 2.38
mainnet_e81889 - altair processSlashings 3.6220 us/op 1.1600 us/op 3.12
mainnet_e81889 - altair processEth1DataReset 3.6790 us/op 1.5670 us/op 2.35
mainnet_e81889 - altair processEffectiveBalanceUpdates 8.5868 ms/op 6.8542 ms/op 1.25
mainnet_e81889 - altair processSlashingsReset 12.065 us/op 7.1880 us/op 1.68
mainnet_e81889 - altair processRandaoMixesReset 13.220 us/op 10.093 us/op 1.31
mainnet_e81889 - altair processHistoricalRootsUpdate 4.3190 us/op 1.5470 us/op 2.79
mainnet_e81889 - altair processParticipationFlagUpdates 8.2250 us/op 4.3290 us/op 1.90
mainnet_e81889 - altair processSyncCommitteeUpdates 2.6380 us/op 1.1630 us/op 2.27
mainnet_e81889 - altair afterProcessEpoch 233.38 ms/op 186.22 ms/op 1.25
altair processInactivityUpdates - 250000 normalcase 39.172 ms/op 33.372 ms/op 1.17
altair processInactivityUpdates - 250000 worstcase 33.986 ms/op 27.486 ms/op 1.24
altair processRewardsAndPenalties - 250000 normalcase 150.71 ms/op 118.99 ms/op 1.27
altair processRewardsAndPenalties - 250000 worstcase 116.61 ms/op 110.84 ms/op 1.05
altair processSyncCommitteeUpdates - 250000 363.79 ms/op 289.66 ms/op 1.26
Tree 40 250000 create 1.0138 s/op 766.17 ms/op 1.32
Tree 40 250000 get(125000) 351.95 ns/op 287.49 ns/op 1.22
Tree 40 250000 set(125000) 3.3391 us/op 2.2686 us/op 1.47
Tree 40 250000 toArray() 46.479 ms/op 31.695 ms/op 1.47
Tree 40 250000 iterate all - toArray() + loop 46.943 ms/op 31.720 ms/op 1.48
Tree 40 250000 iterate all - get(i) 135.52 ms/op 109.33 ms/op 1.24
MutableVector 250000 create 23.307 ms/op 14.570 ms/op 1.60
MutableVector 250000 get(125000) 18.320 ns/op 13.106 ns/op 1.40
MutableVector 250000 set(125000) 784.92 ns/op 602.60 ns/op 1.30
MutableVector 250000 toArray() 9.1729 ms/op 6.8592 ms/op 1.34
MutableVector 250000 iterate all - toArray() + loop 9.1539 ms/op 6.8630 ms/op 1.33
MutableVector 250000 iterate all - get(i) 4.1373 ms/op 3.4369 ms/op 1.20
Array 250000 create 8.0487 ms/op 5.9287 ms/op 1.36
Array 250000 clone - spread 4.2914 ms/op 3.1872 ms/op 1.35
Array 250000 get(125000) 1.9230 ns/op 1.4020 ns/op 1.37
Array 250000 set(125000) 1.9260 ns/op 1.4070 ns/op 1.37
Array 250000 iterate all - loop 208.92 us/op 167.81 us/op 1.24
effectiveBalanceIncrements clone Uint8Array 300000 120.60 us/op 82.488 us/op 1.46
effectiveBalanceIncrements clone MutableVector 300000 1.4960 us/op 1.0550 us/op 1.42
effectiveBalanceIncrements rw all Uint8Array 300000 379.92 us/op 301.85 us/op 1.26
effectiveBalanceIncrements rw all MutableVector 300000 292.15 ms/op 195.38 ms/op 1.50
aggregationBits - 2048 els - zipIndexesInBitList 46.349 us/op 31.735 us/op 1.46
regular array get 100000 times 86.211 us/op 67.404 us/op 1.28
wrappedArray get 100000 times 84.977 us/op 67.410 us/op 1.26
arrayWithProxy get 100000 times 37.624 ms/op 29.699 ms/op 1.27
ssz.Root.equals 628.00 ns/op 500.00 ns/op 1.26
byteArrayEquals 623.00 ns/op 456.00 ns/op 1.37
phase0 processBlock - 250000 vs - 7PWei normalcase 5.2442 ms/op 3.5558 ms/op 1.47
phase0 processBlock - 250000 vs - 7PWei worstcase 61.245 ms/op 46.053 ms/op 1.33
phase0 afterProcessEpoch - 250000 vs - 7PWei 222.90 ms/op 179.20 ms/op 1.24
phase0 beforeProcessEpoch - 250000 vs - 7PWei 84.734 ms/op 97.372 ms/op 0.87
phase0 processEpoch - mainnet_e58758 620.59 ms/op 584.49 ms/op 1.06
mainnet_e58758 - phase0 beforeProcessEpoch 265.33 ms/op 219.24 ms/op 1.21
mainnet_e58758 - phase0 processJustificationAndFinalization 38.393 us/op 21.570 us/op 1.78
mainnet_e58758 - phase0 processRewardsAndPenalties 153.90 ms/op 137.60 ms/op 1.12
mainnet_e58758 - phase0 processRegistryUpdates 20.993 us/op 9.7580 us/op 2.15
mainnet_e58758 - phase0 processSlashings 3.9070 us/op 1.4260 us/op 2.74
mainnet_e58758 - phase0 processEth1DataReset 3.2370 us/op 1.4440 us/op 2.24
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 6.8926 ms/op 5.7573 ms/op 1.20
mainnet_e58758 - phase0 processSlashingsReset 10.931 us/op 7.4890 us/op 1.46
mainnet_e58758 - phase0 processRandaoMixesReset 14.789 us/op 7.2700 us/op 2.03
mainnet_e58758 - phase0 processHistoricalRootsUpdate 3.9500 us/op 1.4780 us/op 2.67
mainnet_e58758 - phase0 processParticipationRecordUpdates 12.675 us/op 7.7320 us/op 1.64
mainnet_e58758 - phase0 afterProcessEpoch 184.93 ms/op 154.22 ms/op 1.20
phase0 processEffectiveBalanceUpdates - 250000 normalcase 7.9931 ms/op 6.4954 ms/op 1.23
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 8.2178 ms/op 6.9606 ms/op 1.18
phase0 processRegistryUpdates - 250000 normalcase 16.610 us/op 10.831 us/op 1.53
phase0 processRegistryUpdates - 250000 badcase_full_deposits 508.90 us/op 522.08 us/op 0.97
phase0 processRegistryUpdates - 250000 worstcase 0.5 269.34 ms/op 213.45 ms/op 1.26
phase0 getAttestationDeltas - 250000 normalcase 20.131 ms/op 15.903 ms/op 1.27
phase0 getAttestationDeltas - 250000 worstcase 19.792 ms/op 16.753 ms/op 1.18
phase0 processSlashings - 250000 worstcase 6.7389 ms/op 6.2591 ms/op 1.08
shuffle list - 16384 els 13.690 ms/op 10.732 ms/op 1.28
shuffle list - 250000 els 198.07 ms/op 156.43 ms/op 1.27
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 442.62 us/op 381.22 us/op 1.16
pass gossip attestations to forkchoice per slot 4.0768 ms/op 3.3938 ms/op 1.20
computeDeltas 3.7531 ms/op 3.2618 ms/op 1.15
computeProposerBoostScoreFromBalances 604.34 us/op 502.77 us/op 1.20
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.4048 ms/op 2.0232 ms/op 1.19
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 93.660 us/op 73.762 us/op 1.27
BLS verify - blst-native 2.2324 ms/op 1.8618 ms/op 1.20
BLS verifyMultipleSignatures 3 - blst-native 4.5710 ms/op 3.8037 ms/op 1.20
BLS verifyMultipleSignatures 8 - blst-native 9.8418 ms/op 8.1950 ms/op 1.20
BLS verifyMultipleSignatures 32 - blst-native 35.723 ms/op 29.697 ms/op 1.20
BLS aggregatePubkeys 32 - blst-native 47.718 us/op 39.889 us/op 1.20
BLS aggregatePubkeys 128 - blst-native 184.38 us/op 153.57 us/op 1.20
getAttestationsForBlock 70.218 ms/op 60.496 ms/op 1.16
CheckpointStateCache - add get delete 13.540 us/op 10.972 us/op 1.23
validate gossip signedAggregateAndProof - struct 5.1150 ms/op 4.2666 ms/op 1.20
validate gossip attestation - struct 2.4424 ms/op 2.0285 ms/op 1.20
altair verifyImport mainnet_s3766816:31 7.5761 s/op 6.1633 s/op 1.23
pickEth1Vote - no votes 2.7448 ms/op 2.2601 ms/op 1.21
pickEth1Vote - max votes 32.025 ms/op 24.729 ms/op 1.30
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.912 ms/op 11.669 ms/op 1.28
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 28.302 ms/op 22.336 ms/op 1.27
pickEth1Vote - Eth1Data fastSerialize value x2048 2.1525 ms/op 1.7291 ms/op 1.24
pickEth1Vote - Eth1Data fastSerialize tree x2048 22.702 ms/op 17.952 ms/op 1.26
bytes32 toHexString 1.3960 us/op 1.0710 us/op 1.30
bytes32 Buffer.toString(hex) 932.00 ns/op 694.00 ns/op 1.34
bytes32 Buffer.toString(hex) from Uint8Array 1.1850 us/op 947.00 ns/op 1.25
bytes32 Buffer.toString(hex) + 0x 920.00 ns/op 721.00 ns/op 1.28
Object access 1 prop 0.49200 ns/op 0.37500 ns/op 1.31
Map access 1 prop 0.35300 ns/op 0.28600 ns/op 1.23
Object get x1000 22.234 ns/op 17.203 ns/op 1.29
Map get x1000 1.2110 ns/op 1.0230 ns/op 1.18
Object set x1000 141.10 ns/op 117.43 ns/op 1.20
Map set x1000 88.509 ns/op 71.455 ns/op 1.24
Return object 10000 times 0.47460 ns/op 0.38000 ns/op 1.25
Throw Error 10000 times 7.4131 us/op 5.9740 us/op 1.24
enrSubnets - fastDeserialize 64 bits 3.4940 us/op 2.8350 us/op 1.23
enrSubnets - ssz BitVector 64 bits 1.0410 us/op 780.00 ns/op 1.33
enrSubnets - fastDeserialize 4 bits 496.00 ns/op 443.00 ns/op 1.12
enrSubnets - ssz BitVector 4 bits 958.00 ns/op 766.00 ns/op 1.25
prioritizePeers score -10:0 att 32-0.1 sync 2-0 125.74 us/op 95.540 us/op 1.32
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 154.28 us/op 124.11 us/op 1.24
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 267.12 us/op 220.98 us/op 1.21
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 580.67 us/op 461.62 us/op 1.26
prioritizePeers score 0:0 att 64-1 sync 4-1 579.41 us/op 460.67 us/op 1.26
RateTracker 1000000 limit, 1 obj count per request 242.28 ns/op 187.87 ns/op 1.29
RateTracker 1000000 limit, 2 obj count per request 179.33 ns/op 140.11 ns/op 1.28
RateTracker 1000000 limit, 4 obj count per request 148.10 ns/op 122.51 ns/op 1.21
RateTracker 1000000 limit, 8 obj count per request 131.46 ns/op 104.43 ns/op 1.26
RateTracker with prune 5.4240 us/op 4.4580 us/op 1.22
array of 16000 items push then shift 3.9400 us/op 3.1825 us/op 1.24
LinkedList of 16000 items push then shift 27.955 ns/op 23.532 ns/op 1.19
array of 16000 items push then pop 292.79 ns/op 242.90 ns/op 1.21
LinkedList of 16000 items push then pop 23.538 ns/op 19.568 ns/op 1.20
array of 24000 items push then shift 5.7023 us/op 4.5512 us/op 1.25
LinkedList of 24000 items push then shift 28.726 ns/op 23.335 ns/op 1.23
array of 24000 items push then pop 251.22 ns/op 198.11 ns/op 1.27
LinkedList of 24000 items push then pop 23.139 ns/op 20.199 ns/op 1.15

by benchmarkbot/action

@philknows
Copy link
Member

It would be helpful to indicate:

  • What is the error specifically (ex. invalid JSON format, structure, etc.)
  • Which file is the issue (ex. keystore_xxxx.json)

try {
keystore = Keystore.parse(fs.readFileSync(keystorePath, "utf8"));
} catch (e) {
throw new Error("Error parsing keystore at " + keystorePath + ": " + (e as Error).message);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess since the key store file does not contain any decrypted secrets, it should be fine to log the location (we recently had a PR that removed similar logging here

Suggestion: consider using template literals rather than concatenation.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We removed the path of the passphrase from the logs since its more sensitive?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We removed the path of the passphrase from the logs since its more sensitive?

Yeah. The advisory that it triggered can be seen here

dadepo
dadepo previously approved these changes May 16, 2022
twoeths
twoeths previously approved these changes May 17, 2022
} catch (e) {
(e as Error).message = `Error parsing keystore at ${keystorePath}: ${(e as Error).message}`;
throw e;
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wemeetagain changed to only wrap the .parse step, not the file read. Also extended error to preserve stack trace

@wemeetagain wemeetagain merged commit fbfae0c into master May 19, 2022
@wemeetagain wemeetagain deleted the cayman/better-keystore-error branch May 19, 2022 16:44
dapplion added a commit that referenced this pull request May 30, 2022
* New metric filtering missed blocks (#3927)

* Log block delay second

* Add elappsedTimeTillBecomeHead metric

* Add 'till become head' metric to dashboard

* chore: correct the metric name to elapsedTimeTillBecomeHead

* Add and use secFromSlot to clock

* Track block source

* Revert "Track block source"

This reverts commit 5fe6220.

* Update bucket values

* Limit how old blocks are tracked in elapsedTimeTillBecomeHead

* Simplify secFromSlot

Co-authored-by: dapplion <35266934+dapplion@users.noreply.github.com>

* Fix the terminal validations of the merge block (#3984)

* Fix the terminal validations of the merge block

* activate merge transition block spec tests

* some comments to explain the merge block validations movement

* Extend error messages when voluntary exit errors because of present of lockfile (#3935)

* Extend error and Clean up

* Only showing the message to use --force to override in case of voluntary exit

* Simplify gitData and version guessing (#3992)

Don't print double slash in version string

Dont add git-data.json to NPM releases

Write git-data.json only in from source docker build

Remove numCommits

Test git-data.json generation from within the test

Move comment

Revert "Dont add git-data.json to NPM releases"

This reverts commit 5fe2d38.

Simplify gitData and version guessing

Run cmd

* Activate ex-ante fork-choice spec tests (#4003)

* Prepare custom version on next release (#3990)

* Prepare custom version on next release

* Test in branch

* Don't set version in advance

* Remove --canary flag

* Change and commit version

* Setup git config

* Revert temp changes

* Lightclient e2e: increase validator client (#4006)

* Bump to v0.37.0 nightly builds (#4013)

* Guarantee full spec tests coverage (#4012)

* Ensure all spec tests are run

* Fix general bls tests

* Improve docs of specTestIterator

* Fix fork_choice tests

* Remove Check spec tests step

* Add merge transition/finalization banners (#3963)

* Add merge transition/finalization banners

* fix signatures

* Benchmark initial sync (#3995)

* Basic range sync perf test

* Benchmark initial sync

* Add INFURA_ETH2_CREDENTIALS to benchmark GA

* Download test cache file from alternative source

* Re-org beforeValue and testCase helpers

* Break light-client - state-transition test dependency

* Revert adding downloadTestCacheFile

* Download files from a Github release

* Clarify #3977 with unbounded uint issue (#4018)

* Update mainnet-shadow-5 configs (#4021)

* Bump moment from 2.29.1 to 2.29.2 (#3901)

Bumps [moment](https://github.com/moment/moment) from 2.29.1 to 2.29.2.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](moment/moment@2.29.1...2.29.2)

---
updated-dependencies:
- dependency-name: moment
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Implement support for validator next-epoch proposer duties (#3782)

* Implementation to be able to get block proposer an epoch ahead - still need optimization

* revert changes made to waitForSlot

* caching the results of computing future proposers. Also extended test

* using effectiveBalanceIncrements from state instead of recomputing it

* fix lint errors

* revert check not needed in getBeaconProposer

* Update tests to include assertion messages

* Move caching of next proposer duties to BeaconChain class

* Delete the block proposer previously cached when next proposer was requested at current epoch

* moved next epoch proposers from the chain to the state

* Compute next proposer on demand and cache

* Fix lint errors

* update implementation to work with changes from master

* caching epoch seed in context so that getNextEpochBeaconProposer can be independent of state

* Revert "caching epoch seed in context so that getNextEpochBeaconProposer can be independent of state"

This reverts commit 02a722a.

* caching epoch seed in context so that getNextEpochBeaconProposer can be independent of state

* removing the need to delete from nextEpochProposers in call to getBeaconProposer

* no need to recompute currrentProposerSeed again

* Revert "no need to recompute currrentProposerSeed again"

This reverts commit b6b1b8c.

* removed empty file left after fixing merge conflicts

* remove some unnecessary variable from the epoch context.

* add some comments

* Fix lint

* import from the right location

* Review PR

* Merge imports

* Delete get proposers api impl test

* Remove duplicated comment

Co-authored-by: dapplion <35266934+dapplion@users.noreply.github.com>

* Extend timeout for gitData unit test (#4026)

* Fix readAndGetGitData (#4025)

* Ensure light client update is in a single period (#4029)

* Handle merge block fetch error (#4016)

* Handle merge block fetch error

* Log errors on fetch errors for terminal pow

* docs: Update nodeJS minimum requirement (#4037)

* Remove child_process call in gitData before step (#4033)

* Oppool aggregates use BitArray only for set logic (#4034)

* Use BitArrays for aggregate merging

* Test intersectUint8Arrays

* Review PR

* Update tests

* Remove un-used code

* Modify gossipsub params following consensus spec v1.1.10 (#4011)

* Modify gossipsub params following consensus spec v1.1.10

* Specify GOSSIPSUB_HEARTBEAT_INTERVAL as a constant

* Throw a more informative error on invalid keystore (#4022)

* Throw a more informative error on invalid keystore

* Make error more descriptive

* Use template string

* Update keys.ts

* Update keys.ts

Co-authored-by: Lion - dapplion <35266934+dapplion@users.noreply.github.com>

* Ignore gossip AggregateAndProof if aggregate is seen (#4019)

* Ignore gossip AggregateAndProof if aggregate is seen

* Check for non-strict superset of seen attestation data

* Fix validateGossipAggregateAndProof benchmark test

* Fix import

* Ultilize intersectUint8Arrays()

* Implement SeenContributionAndProof.participantsKnown

* Add metrics to seen cache

* Add perf tests

* Change method name to isSuperSetOrEqual()

* Refactor metric names

* Specify lerna exact version for release-nightly workflow (#4049)

* Add ropsten network (#4051)

* Force all packages to be versioned for exact (#4052)

* Update discv5 to v0.7.1 (#4044)

* Add ability to update the fee recipient for execution via beacon and/or validator defaults (#3958)

* Add and use a default fee recipient for a validator process

* transfer the proposer cache to beacon chain

* mock chain fixes

* test and perf fixes

* fee recipient validation change

* track and use free recipient as string instead of ExecutionAddress

* fix unit test

* fix merge test

* use dummy address

* refac and add proposer cache pruning

* tests for beacon proposer cache

* merge interop fee recipient check

* fix the optional

* feeRecipient confirmation and small refac

* add the missing map

* add flag to enable strict fee recipient check

* Small refactor to setup merge for ropsten using baked in configs (#4053)

* Issue advance fcU for builing the EL block (#3965)

rebaseing to the refactored prepare beacon proposer

refac payload id cache as separate class and add pruning

issue payload fcus if synced

rename issueNext.. to maybeIssueNext...

* Simplify release process (#4030)

* Simplify release process

* Remove old postrelease script

* Add lerna version check

* Tweak RELEASE.md

* Add force-publish to lerna version command

* Update the proposer boost percentage to 40% (#4055)

* ESM Support (#3978)

* ESM changes

* Fix root lodestar script

* Fix some linter errors

* trying directly re-exporting under an alias from networks module

* Fix types exports

* Fix more linter errors

* Fix spec test download

* Update bls to 7.1.0

* Fix spec tests

* temp reverting eslint parser option to 10 and disabling the check of .js file extenstion. Should fix lint errors

* temp commented out file-extension-in-import

* Disable readme checks

* Fix check-build

* Fix params e2e tests

* Bump @chainsafe/threads

* Bump bls to v7.1.1

* Add timeouts after node initialization but before sim test run

* Tweak timeouts

* Tweak timeout

* Tweak sim merge timeout

* Tweak sim merge timeout

* Tweak sim merge timeout

* Tweak sim merge timeout

* Add more timeouts

* Add another timeout

* Fix linter errors

* Fix some tests

* Fix some linter errors and spec tests

* Fix benchmarks

* Fix linter errors

* Update each bls dependency

* Tweak timeouts

* Add another timeout

* More timeouts

* Fix bls pool size

* Set root package.json to ESM

* Remove old linter comment

* Revert "Set root package.json to ESM"

This reverts commit 347b0fd.

* Remove stray file (probably old)

* Undo unnecessary diff

* Add comment on __dirname replacement

* Import type @chainsafe/bls/types

* Use lodestar path imports

* Revert multifork to lodestar package

* Format .mocharc.yaml

* Use same @chainsafe/as-sha256 version

* Fix lodash path imports

* Use src instead of lib

* Load db metrics

* Remove experimental-specifier-resolution

* Remove lodestat/chain export

* Add stray missing file extension

* Revert ValidatorDir changes

* Fix stray missing file extensions

* Fix check-types

Co-authored-by: Dadepo Aderemi <dadepo@gmail.com>
Co-authored-by: dapplion <35266934+dapplion@users.noreply.github.com>

* chore(release): v0.37.0-beta.0

* Bump to v0.37.0

Co-authored-by: tuyennhv <vutuyen2636@gmail.com>
Co-authored-by: g11tech <76567250+g11tech@users.noreply.github.com>
Co-authored-by: dadepo <dadepo@gmail.com>
Co-authored-by: Cayman <caymannava@gmail.com>
Co-authored-by: Phil Ngo <58080811+philknows@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: g11tech <gajinder@g11.in>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants